package app.maker.entity;

import java.io.Serializable;
import javax.persistence.*;
import java.util.List;

/**
 * The persistent class for the entrepot database table.
 * 
 */
@Entity
@Table(name = "entrepot")
@NamedQueries({
		@NamedQuery(name = "Entrepot.findAll", query = "SELECT e FROM Entrepot e"),
		@NamedQuery(name = "Entrepot.findEntrepotByName", query = "SELECT e FROM Entrepot e WHERE e.batiment = :param") })
public class Entrepot implements Serializable {
	private static final long serialVersionUID = 1L;
	private int idEntrepot;
	private String batiment;
	private List<EntrepotHasProduit> entrepotHasProduits;

	public Entrepot() {
	}

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(unique = true, nullable = false)
	public int getIdEntrepot() {
		return this.idEntrepot;
	}

	public void setIdEntrepot(int idEntrepot) {
		this.idEntrepot = idEntrepot;
	}

	@Column(nullable = false, length = 45)
	public String getBatiment() {
		return this.batiment;
	}

	public void setBatiment(String batiment) {
		this.batiment = batiment;
	}

	// bi-directional many-to-one association to EntrepotHasProduit
	@OneToMany(mappedBy = "entrepot", cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
	public List<EntrepotHasProduit> getEntrepotHasProduits() {
		return this.entrepotHasProduits;
	}

	public void setEntrepotHasProduits(
			List<EntrepotHasProduit> entrepotHasProduits) {
		this.entrepotHasProduits = entrepotHasProduits;
	}

	public EntrepotHasProduit addEntrepotHasProduit(
			EntrepotHasProduit entrepotHasProduit) {
		getEntrepotHasProduits().add(entrepotHasProduit);
		entrepotHasProduit.setEntrepot(this);

		return entrepotHasProduit;
	}

	public EntrepotHasProduit removeEntrepotHasProduit(
			EntrepotHasProduit entrepotHasProduit) {
		getEntrepotHasProduits().remove(entrepotHasProduit);
		entrepotHasProduit.setEntrepot(null);

		return entrepotHasProduit;
	}

}